Traditionally applications/products that address a common business need but still have differentiation based on business partners, geographic conditions, individual needs and so on are catered to by multiple instances of the same product or application being customized as per local requirements. These differentiations are very complex to develop and manage for each instance. Further, the deployment of multiple instances of same product involve a phase of heavy differentiation according to the local needs where some of the instances are customized by writing additional code while others involve some type of configuration based on how mature the product or application is. Typically such applications or products involving multiple deployments that have been heavily customized according to local needs at some point, move away from the “commonality” of the original application so much as to be considered as a separate application in itself. In other cases, the products or applications are developed independently by individual business units/geographies/partners based on local requirements with no view of the global requirements and actually managed as separate applications or products.
Further more, while deploying an application or product to various business units or geographies or partners some of key challenges lies in changing local code of the application according to local needs, requiring a separate upgrade strategy for each instance and fragmentation of extended functionality because of non-standard way of customization and so on.
What is needed therefore is a system and method which develops multi instance single code base product/application with centralized management along with a synchronization frame work which automatically integrates centralized management system to the required application with necessary modifications.